home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / tex / tools / dvi_300b / treiber / sources / treiber.h < prev    next >
Text File  |  1995-11-25  |  7KB  |  123 lines

  1. /*******************************************************************
  2.  *******************************************************************
  3.  ** Routinen aus Treiber.c (c)'93 m.pristovsek                    **
  4.  ** Diese Routinen sind in TREIBER.C und FAST_DVI.S definiert     **
  5.  *******************************************************************
  6.  *******************************************************************/
  7.  
  8.  
  9. /*******************************************************************
  10.  * DIE Arbeitsroutine im eigentlichen Modul (als Parametercheck!)  *
  11.  * Diese Routine ist druckerspezifisch                             *
  12.  *******************************************************************
  13.  * Die Kurzbeschreibung der Parameter:                             *
  14.  *  bitmap  - Zeiger auf die Bitmap                                *
  15.  *  offset  - Offset vom Rand (links bei quer, sonst von oben)     *
  16.  *  weite   - Breite der Bitmap in Pixel                           *
  17.  *            Die Breite einer Bitmap in Bytes erhält man durch:   *
  18.  *              ((weite+15)/8)&0xFFFFFFFFFEL                        *
  19.  *            Die Breite ist immer eine gerade Anzahl von Bytes    *
  20.  *  hoehe   - Höhe der Bitmap in Pixel (=Zeilen)                   *
  21.  *  h_dpi   - Horizontale Auflösung in Dpi                         *
  22.  *  v_dpi   - vertikale Auflösung in Dpi                           *
  23.  *  datei   - Handle der Zieldatei (-3<= heißt keine angegeben)    *
  24.  *  flag    - Bitflag:                                             *
  25.  *            flag&1 (Initialisierung nötig)                       *
  26.  *            flag&2 (Daten auch Drucken)                          *
  27.  *            flag&4 (Seite beenden + Seitenvorschub)              *
  28.  *            flag==7 heißt, Seite komplett drucken                *
  29.  *            Unfertig käme dann: 3, 2, ..., 2, 4 (oder 3, 2, 6)   *
  30.  *  quer    - Datei als Landscape ausdrucken                       *
  31.  *  option  - Ein maximal 16 Byte langer String mit zusätzlichen   *
  32.  *            Optionen in beliegigem Format                        *
  33.  *******************************************************************
  34.  * Eine Rückgabe <0 wird als Fehler interpretiert und an DVI zu-   *
  35.  * rückgegeben                                                     *
  36.  *******************************************************************
  37.  * GROSSE VARIABLEN AUSSERHALB ALLER FUNKTIONEN UND STATISCH       *
  38.  * DEKLARIEREN, SONST GIBT ES U.U. STACKÜBERLAUF!                  *
  39.  *******************************************************************/
  40. short drucke( char *bitmap, long offset, long weite, long hoehe, 
  41.             long h_dpi, long v_dpi, short datei, short flag, 
  42.             short quer, char *option );
  43.  
  44.  
  45. /*==================================================================*
  46.  " Folgende Routinen sind allgemein zur Eingrenzung des Bereiches,  "
  47.  " der gedruckt werden soll, interessant                            "
  48.  *==================================================================*/
  49.  
  50. /*******************************************************************
  51.  * Ist diese Zeile Leerzeile? (d.h. sind "offset" Bytes==0?)       *
  52.  *******************************************************************
  53.  * "ptr": Zeiger auf Bitmap            "offset":  Breite in Bytes  *
  54.  *******************************************************************/
  55. int ist_leerzeile( char *ptr, long offset );
  56. /* 16.1.93 */
  57.  
  58.  
  59. /*******************************************************************
  60.  * Sind in den nächsten #next-Zeilen keine Zeichen? D.h. damit kann*
  61.  * man z.B den linken Rand bestimmen.                              *
  62.  *******************************************************************
  63.  * "ptr":  Zeiger auf Bitmap           "offset":  Breite in Bytes  *
  64.  * "next":  Anzahl zu testender Zeilen                             *
  65.  *******************************************************************/
  66. int ist_next_leer( char *ptr, long offset, long next );
  67. /* 16.1.93 */
  68.  
  69.  
  70. /*******************************************************************
  71.  * Bitmap zeilenweise um 90 Grad drehen (in DREHE_90)              *
  72.  *******************************************************************
  73.  * Dabei ist "qweite" die Breite der Bitmap                        *
  74.  * und "zweite" die Höhe der (Bitmap+7)/8                          *
  75.  * ==> "ziel" muß mindestens "zweite"-Bytes groß sein!             *
  76.  *******************************************************************/
  77. void drehe_90( char *quelle, char *ziel, long qweite, long zweite, long x );
  78.  
  79.  
  80. /*******************************************************************
  81.  * Bitmap für Nadeln drehen (in BLOCK_BY)                          *
  82.  *******************************************************************
  83.  * ende:   Breite des Bereiches IN BYTES                           *
  84.  * offset: Weite einer Bitmapzeile                                 *
  85.  * modus:  Wieviel Bytes pro Zeile (9:1, 24:3, Jet:1-6)            *
  86.  *******************************************************************/
  87. void block_it( char *dest, char *src, short ende, long offset, short mode );
  88. /* 10.8.93 */
  89.  
  90.  
  91. /*******************************************************************
  92.  * Versucht Drucker zu Öffnen und die Semaphore 'PRN:' zu bekommen *
  93.  * Leider kann man die Datei "U:\dev\prn" nicht verriegeln; deshalb*
  94.  * wurde die Semaphore eingeführt.                                 *
  95.  *******************************************************************
  96.  * Der Rückgabewert ist 1 (Ok) oder 0 (Zu wenig Speicher)          *
  97.  *******************************************************************/
  98. int open_printer( int handle );
  99. /* 6.2.93 */
  100.  
  101.  
  102. /*******************************************************************
  103.  * Gibt die "len" Daten ab "blk" an Spooler weiter (umgeht GEMDOS) *
  104.  * Gleichzeitig sorgt diese Funktion für das Blinken /-\| ...      *
  105.  *******************************************************************/
  106. long  print_block( long len, char *blk, int fh );
  107. /* 22.1.93 */
  108.  
  109.  
  110. /*******************************************************************
  111.  * Gibt den String "str" an Spooler weiter (s.o.)                  *
  112.  *******************************************************************/
  113. long  print_str( char *str, int fh );
  114. /* 3.9.94 */
  115.  
  116.  
  117. /*******************************************************************
  118.  * Leert Spoolerspeicher, MUSS vor dem Druckende aufgerufen werden!*
  119.  *******************************************************************/
  120. void  flush_block( int fh );
  121. /* 23.1.93 */
  122.  
  123.